home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Audio Version 4.94
/
audioversion4.94knowledgemediaresourcelibraryoctober1994.iso
/
mac
/
midi
/
encrdm20.hqx
/
Encore 2.0.5 Demo folder
/
Encore.rsrc
/
PREC_103
< prev
next >
Wrap
Text File
|
1992-05-18
|
4KB
|
204 lines
/BigDict 300 dict def
BigDict begin
%--- Some definitions ---
/XD {exch def} def
/_SLW {setlinewidth} def
/_SW {stringwidth} def
/mydc {4 mul round 4 div exch 4 mul round 4 div exch} def
/_MT {mydc moveto} def
/LnW 75 100 div def
/SLT 03 2 div def
%--- Create arrays to hold staff info ---
/STopAry 64 array def
/SBotAry 64 array def
/NStr 8 string def
/ChStr 1 string def
/CFudge [ 1 2 4 8 ] def
%--- GetYPos( ScalePos ) ---
/GY_{
10 sub StepSize mul
STopAry _CSF get add def
}def
%--- DrawChar( X0, Y0, Ch ) ---
/DC_{
/Ch XD /Y0 exch GY_ /X0 XD
ChStr 0 Ch put
X0 Y0 moveto ChStr show
}def
%--- DrawLine( X0, Y0, X1, Y1 )
/DL_{
/Y1 XD /X1 XD /Y0 XD /X0 XD
X0 Y0 moveto X1 Y1 lineto stroke
}def
%--- NoteWidth() ---
/NW_{
/CW (q) _SW pop (|) _SW pop sub def
/BGap SpaceSize .75 mul def
/BH StepSize def
}def
%--- GraceWidth() ---
/GW_{
/|______Sonata findfont FSize .50 mul scalefont setfont
/CW (q) _SW pop (|) _SW pop sub def
/BGap SpaceSize .40 mul def
/BH StepSize .50 mul def
/SpaceSize SpaceSize .50 mul def
}def
%--- DrawStaff( X0, Y0, X1 ) ---
/DSS_
{/X1 XD /Y0 XD /X0 XD
/_CSF _CSF 1 add def
SBotAry _CSF Y0 put
STopAry _CSF Y0 FSize add put
/StaffBase Y0 SpaceSize sub def
/Temp (=) _SW pop def
X0 Y0 moveto
X1 X0 sub Temp div cvi
{ (=) show } repeat
X1 Temp sub Y0 moveto (=) show
}def
%--- DrawBarLine( X0, FromStaff, ToStaff ) ---
/DBL_
{/TS XD /FS XD /X0 XD
/Y0 STopAry FS get def
/Y1 SBotAry TS get def
X0 Y0 moveto
X0 Y1 lineto stroke
}def
%--- ScaleFont( FIndex ) ---
/SF_
{/FIndex XD
/FSize [ 14 18 24 36 ] FIndex get def
/|______Sonata findfont FSize scalefont setfont
/SpaceSize FSize 4 div def
/StepSize FSize 8 div def
}def
%--- DrawMeter( X0, MeterH, MeterL ) ---
/DM_
{/ML XD /MH XD /X0 XD
/MH MH NStr cvs def
STopAry _CSF get
SpaceSize sub
X0 MH _SW pop 2 div sub exch moveto MH show
/ML ML NStr cvs def
SBotAry _CSF get
SpaceSize add
X0 ML _SW pop 2 div sub exch moveto ML show
}def
%--- DrawStem( X0, Y0, StemHeight ) ---
/DS_{
/SH exch StepSize mul def /Y0 exch GY_ /X0 XD
/Y1 Y0 SH add def
DoStem
}def
%--- DoStem X0, Y0, Y1 ---
/DoStem{
Y1 Y0 ge
{/Temp (\307) def /Dir 1 SpaceSize mul def /Dy Y1 Y0 sub def}
{/Temp (\310) def /Dir -1 SpaceSize mul def /Dy Y0 Y1 sub def}ifelse
Dy SpaceSize div cvi
{X0 Y0 moveto Temp show /Y0 Y0 Dir add def} repeat
X0 Y1 Dir sub moveto Temp show
}def
%--- DrawBeamStem( X0, YPos, Shifted ) ---
/DBS_{
/SH XD /Y0 exch GY_ /X0 XD
0 SH eq
{/Temp 0 def}
{/Temp CW def}ifelse
/Y1 X0 Temp add BX0 sub BDy mul BDx div BY0 add def
DoStem
}def
%--- DrawBeamLine( X0, Y0, X1, Y1 ) ---
/DBL_{
BH cvi
{X0 Y0 moveto X1 Y1 lineto stroke
/Y0 Y0 BDir add def /Y1 Y1 BDir add def}repeat
}def
%--- DrawBeam( X0, Y0, SH0, X1, Y1, SH1 ) ---
/DBM_{
/SH1 XD /BY1 exch GY_ /BX1 XD
/SH0 XD /BY0 exch GY_ /BX0 XD
1 _SLW
0 SH0 ne
{/BDir -1 def /BX0 BX0 CW add def}
{/BDir 1 def} ifelse
0 SH1 ne {/BX1 BX1 CW add def}if
/BDx BX1 BX0 sub def /BDy BY1 BY0 sub def
/X0 BX0 def /X1 BX1 def
/Y0 BY0 def /Y1 BY1 def
DBL_
}def
%--- DrawBeamPart( X0, SH0, X1, SH1, YOffset ) ---
/DBP_{
/Temp exch BGap mul def
/SH1 XD /X1 XD
/SH0 XD /X0 XD
0 SH0 ne {/X0 X0 CW add def}if
0 SH1 ne {/X1 X1 CW add def}if
/Y0 X0 BX0 sub BDy mul BDx div BY0 add def
/Y1 X1 BX0 sub BDy mul BDx div BY0 add def
/Y0 Y0 Temp add def /Y1 Y1 Temp add def
DBL_
}def
%--- Slur( X1, Y1, X2, Y2, X3, Y3, X4, Y4 ) ---
/SLR_{
/Y4 XD /X4 XD /Y3 XD /X3 XD
/Y2 XD /X2 XD /Y1 XD /X1 XD
/Y2 Y2 Y1 sub 3 div Y2 add def
/Y3 Y3 Y4 sub 3 div Y3 add def
X2 X1 eq{/X3 X4 def /X2 X4 X1 sub 2 div X1 add def
/Y3 Y1 Y4 sub 2 div Y4 add def}if
X3 X4 eq Y3 Y4 eq and{/X2 X1 def /X3 X4 X1 sub 2 div X1 add def
/Y2 Y1 Y4 sub 2 div Y4 add def}if
newpath .25 _SLW X1 Y1 _MT X2 Y2 X3 Y3 X4 Y4 curveto
Y2 Y1 eq Y3 Y4 eq or{Y4 Y1 lt{/Y2 Y2 SLT add def /Y3 Y3 SLT add def}
{/Y2 Y2 SLT sub def /Y3 Y3 SLT sub def}ifelse}
{Y2 Y1 lt{/Y2 Y2 SLT add def}{/Y2 Y2 SLT sub def}ifelse
Y3 Y4 lt{/Y3 Y3 SLT add def}{/Y3 Y3 SLT sub def}ifelse}ifelse
X3 Y3 X2 Y2 X1 Y1 curveto closepath fill LnW _SLW
}def
%--- Brace( X1, Y1, Y2 ) -----
/Brace_{
/Y2 XD /Y1 XD /X1 XD
gsave
/FC Y1 Y2 sub FSize 4 mul div def
FC FC scale
/X1 X1 (\247) _SW pop FC mul sub FC div def
X1 Y1 FSize FC mul sub FC div moveto (\247) show
X1 Y1 FSize 3 mul FC mul sub FC div moveto (\352) show
grestore
}def
%------- SClef( X0, YPos, Ch ) --------
/SClef_{
/Ch XD /Y0 exch GY_ /X0 XD
ChStr 0 Ch put
63 Ch eq
{/Y0 Y0 CFudge FIndex get add def} if
X0 Y0 moveto
gsave
.75 .75 scale
ChStr show
grestore
}def